1. Technical Field
The present invention relates to mobile computing services, and more particularly, to a platform to support data sharing among mobile computing applications.
2. Description of the Related Art
A wide variety of mobile applications are currently available on mobile devices. Unfortunately, communication and data sharing among the mobile applications is quite limited. Communication between mobile applications is “adhoc”. For example, consider the communication scenario in which Yelp™, the well-known restaurant review application, allows users to post reviews of restaurants using the Facebook™ social networking application. The communication between Yelp™ and Facebook™ applications is facilitated by Yelp™ accessing the public application programming interface (API) for the Facebook™ application.
A major problem with the communication configuration described above is that it is unidirectional and non-scalable. The two applications are both required to add functionalities to be able to allow the Yelp™ application to post reviews via the Facebook™ application. Specifically, the Facebook™ application has to setup an API, while the Yelp™ application has to setup an interface to communicate with the API. Moreover, if the Facebook™ application desired the ability to access or post data to the Yelp™ application, the Yelp™ application would also have to setup an API and the Facebook™ application would have to setup a corresponding interface. Moreover, whenever one of the applications decides to alter or modify the layout of its underlying data, each of the applications would have to adjust their interface to the application accordingly. The overhead associated with setting up and maintaining this adhoc form of data sharing severely limits communication among mobile applications.
The problem becomes much worse when a large number of mobile applications each desire to share with each other. For example, consider the scenario where a hundred applications all wish to communicate with each other. To facilitate communication among the applications, each application would have to setup ninety-nine interfaces in addition to setting up its own API.